package Modelo;


public class Taladro implements Habilidad {
	private Numeros potencia;
	public int vidaUtil;
	
	public Taladro(){
		vidaUtil = Constantes.vidaUtilTaladro;
		potencia = new Entero(Constantes.potenciaTaladro);
	}
	
	/**
	 * El ejecutor usa el taladro
	 * @param ejecutor
	 */
	
	public void ejecutarSobre(PoseedorDeHabilidad ejecutor) {
		// bloque debajo
		if(vidaUtil>0){
			Bloque bloqueADestruir = ejecutor.getMapa().getBloqueNEnDireccionDesdeUbicacionDe(ejecutor,1,Constantes.abajo);
			bloqueADestruir.atacar(potencia);		
			vidaUtil--;
		}
		else
			ejecutor.eliminarHabilidad(this);
	}

	/**
	 * Indica si el ejecutor puede usar el taladro 
	 * @param ejecutor
	 * @return boolean
	 */
	
	public boolean esEjecutableSobre(PoseedorDeHabilidad ejecutor) {
		if(vidaUtil<=0) return false;
		return ejecutor.getMapa().getBloqueNEnDireccionDesdeUbicacionDe(ejecutor,1,Constantes.abajo).esFirme();
	}

	/**
	 * Tiempo que tarda en hacer una vuelta del taladro
	 * @param ejecutor
	 * @return long
	 */
	
	public long tiempoDeEjecucion(PoseedorDeHabilidad ejecutor) {
		return Constantes.tiempoCiclo;
	}

}

